import greenfoot.*;

/**
 * Representa la clase Number, la cual
 * se usa para crear los letreros de 
 * los números de las vidas, del tiempo
 * y de los puntos. 
 * 
 * @author Carlos Bretherton.
 * @version 01 de Mayo del 2012
 */
public abstract class Number extends Mensajes
{
    protected GreenfootImage numeros[];
    protected int u = 0;
    protected int d = 0;
    protected int c = 0;
    protected int valor;
    
    /**
     * Constructor de objetos de la clase
     * Number, en el cual se cargan en un
     * arreglo las imagenes de los numeros
     * del 0 al 9.
     */
    public Number()
    {
        super(0, 0);
        img1 = new GreenfootImage(60,30);
        numeros = new GreenfootImage[10];
        for(int i=0; i < 10; i++)
        {
            numeros[i] = new GreenfootImage("" + i + ".png");
        }
    }
    
    /**
     * Actua de los objetos de la clase Number.
     */
    public void act() 
    {
        super.act();
    }    
    
    /**
     * Método abstracto definido en 
     * las subclases.
     */
    public abstract void muestra();
    
    /**
     * Asigna los valores de las unidades,
     * decenas y centenas basandose en
     * base BCD.
     */
    public void divide()
    {
        if(valor < 10)
        {
            u = valor;
            d = 0;
            c = 0;
            
        }
        
        if(valor > 9 && valor < 20)
        {
            u = valor - 10;
            d = 1;
            c = 0;
            
        }
        
        if(valor > 19 && valor < 30)
        {
            u = valor - 20;
            d = 2;
            c = 0;           
        }   
        
        if(valor > 29 && valor< 40)
        {
            u = valor - 30;
            d = 3;
            c = 0;           
        }
        
        if(valor > 39 && valor < 50)
        {
            u = valor - 40;
            d = 4;
            c = 0;           
        }   
        
        if(valor > 49 && valor < 60)
        {
            u = valor - 50;
            d = 5;
            c = 0;           
        }   
        
        if(valor > 59 && valor < 70)
        {
            u = valor - 60;
            d = 6;
            c = 0;           
        }   
        
        if(valor > 69 && valor < 80)
        {
            u = valor - 70;
            d = 7;
            c = 0;           
        }
        
        if(valor > 79 && valor < 90)
        {
            u = valor - 80;
            d = 8;
            c = 0;           
        }
        
        if(valor > 89 && valor < 100)
        {
            u = valor - 90;
            d = 9;
            c = 0;           
        }
        
        if(valor > 99 && valor < 110)
        {
            u = valor - 100;
            d = 0;
            c = 1;           
        }
        
        if(valor > 109 && valor < 120)
        {
            u = valor - 110;
            d = 1;
            c = 1;           
        }
        
        if(valor > 119 && valor < 130)
        {
            u = valor - 120;
            d = 2;
            c = 1;           
        }
        
        if(valor > 129 && valor < 140)
        {
            u = valor - 130;
            d = 3;
            c = 1;           
        }
        
        if(valor > 139 && valor < 150)
        {
            u = valor - 140;
            d = 4;
            c = 1;           
        }
    }
        
}
